package co.fitstart.admin.service;

import java.util.List;

import com.demo2do.core.support.Page;

import co.fitstart.admin.entity.search.OfflineExperienceSignUpSearch;
import co.fitstart.admin.entity.search.OnlineExperienceSignUpSearch;
import co.fitstart.entity.market.OfflineExperienceSignUp;
import co.fitstart.entity.market.OnlineExperienceSignUp;
import co.fitstart.entity.principal.Principal;
import co.fitstart.entity.site.Site;

/**
 * 
 * @author haiyan_xiao
 *
 */
public interface ExperienceSignUpService {

    /**
     * 
     * @param site
     * @param handle
     * @param page
     * @return
     */
    public List<OfflineExperienceSignUp> listOffline(Site site, Boolean handle, Page page);

    /**
     * 
     * @param sites
     * @param handle
     * @param page
     * @return
     */
    public List<OfflineExperienceSignUp> listOffline(List<Site> sites, Boolean handle, Page page);

    /**
     * 
     * @param experienceId
     * @return
     */
    public OfflineExperienceSignUp loadOffline(Long experienceId);

    /**
     * 
     * @param experience
     * @param remark
     * @param handler
     */
    public void handle(OfflineExperienceSignUp experience, String remark, Principal handler);

    /**
     * 
     * @param search
     * @param page
     * @return
     */
    public List<OfflineExperienceSignUp> search(OfflineExperienceSignUpSearch search, Page page);

    /**
     * 
     * @param search
     * @return
     */
    public List<OfflineExperienceSignUp> search(OfflineExperienceSignUpSearch search);

    /**
     * 
     * @param handle
     * @param page
     * @return
     */
    public List<OnlineExperienceSignUp> listOnline(Boolean handle, Page page);

    /**
     * 
     * @param experienceId
     * @return
     */
    public OnlineExperienceSignUp loadOnline(Long experienceId);

    /**
     * 
     * @param experience
     * @param remark
     * @param handler
     */
    public void handle(OnlineExperienceSignUp experience, String remark, Principal handler);

    /**
     * 
     * @param search
     * @param page
     * @return
     */
    public List<OnlineExperienceSignUp> search(OnlineExperienceSignUpSearch search, Page page);

    /**
     * 
     * @param search
     * @return
     */
    public List<OnlineExperienceSignUp> search(OnlineExperienceSignUpSearch search);
}
